
#include "vsf_hal.h"
#include "sthal.h"

#include "hme_retarget.h"

void sthal_main(void)
{
    HAL_Init();

	/************************************** uart function *******************************/
    //extern void sthal_uart_echo_task(void);
    //sthal_uart_echo_task();    
    //extern void sthal_uart_txint_task(void);
    //sthal_uart_txint_task();
    //extern void sthal_uart_rxint_task(void);
    //sthal_uart_rxint_task();
    //extern void sthal_uart_dmatx_task(void);
    //sthal_uart_dmatx_task();
    extern void sthal_uart_dmarx_task(void);
    sthal_uart_dmarx_task();
	
	/************************************** gpio function *******************************/
	/************************************** dma function *******************************/	  
	/************************************** spi function *******************************/
	/************************************** i2c function *******************************/
	/************************************** isp function *******************************/
	/************************************** timer function *****************************/	
	/************************************** wdt function *******************************/
	/************************************** sleep function *****************************/
	/************************************** external fpga interrupt function ***********/
}

void vsfhal_main(void)
{
    vsf_hal_init();

	/************************************** uart function *******************************/
    //extern void vsf_uart_echo_task(void);
    //vsf_uart_echo_task();
    //extern void vsf_uart_txint_task(void);
    //vsf_uart_txint_task();
    //extern void vsf_uart_rxint_task(void);
    //vsf_uart_rxint_task();
    //extern void vsf_uart_dmarx_task(void);
    //vsf_uart_dmarx_task();
    //extern void vsf_uart_dmatx_task(void);
    //vsf_uart_dmatx_task();
    
    //extern void sthal_uart_echo_task(void);
    //sthal_uart_echo_task();    
    //extern void sthal_uart_txint_task(void);
    //sthal_uart_txint_task();
    //extern void sthal_uart_rxint_task(void);
    //sthal_uart_rxint_task();
	
	/************************************** gpio function *******************************/   
    //extern void vsf_gpio_toggle_task(void);
    //vsf_gpio_toggle_task();
    //extern void vsf_gpio_poll_task(void);
    //vsf_gpio_poll_task();
    //extern void vsf_gpio_interrupt_task(void);
    //vsf_gpio_interrupt_task();
	
	/************************************** dma function *******************************/	
    //extern void vsf_dma_mem_to_mem(void);
    //vsf_dma_mem_to_mem();
    
	/************************************** spi function *******************************/
	/************************************** i2c function *******************************/
	/************************************** isp function *******************************/
	/************************************** timer function *****************************/	
	/************************************** wdt function *******************************/	
	/************************************** sleep function *****************************/
	/************************************** external fpga interrupt function ***********/
}


int main(void)
{
	HME_UART_InitTypeDef init;
	HME_UART_StructInit(&init);
	HME_UART_Init(HME_PRINT_UART, &init);

	printf("Hello MCU Fuction ...%s %s\r\n", __DATE__, __TIME__);

    //vsfhal_main();
    //sthal_main();
    extern int vsf_test_main(void);
    vsf_test_main();
		
	while(1);
    
    return 0;
}
